﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using ModeloDesenvolvimento;

/*ESCRITO DIA 20/12/2011*/
namespace Poligas_ERP.Classes
{
    public class Clientes
    {

        SqlConnection cnx = new SqlConnection();
        SqlCommand cmd = new SqlCommand();
        //SqlDataReader dr;
        DataTable tbRetorno = new DataTable();
        DataTable tbRecuperaDados = new DataTable();
        DataTable tbRetornoSetor = new DataTable();

        Db db = new Db();
        Util util = new Util();

        public Clientes() { }

        public DataTable RetornaTop200()
        {
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);
                cmd.CommandText = "spClientesSelectTop200";
                tbRetorno.Clear();
                tbRetorno.Load(cmd.ExecuteReader());
            }
            catch { }
            finally
            {
                db.FechaConexao(cnx);
            }
            return tbRetorno;
        }
        public DataTable RecuperaDadosPorCodigo(Int32 CodCliente)
        {
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.Parameters.AddWithValue("@CodCliente", CodCliente);
                cmd.CommandText = "spClientesSelect";

                tbRecuperaDados.Clear();
                tbRecuperaDados.Load(cmd.ExecuteReader());
            }
            catch { }

            finally
            {
                db.FechaConexao(cnx);
            }
            return tbRecuperaDados;
        }
        public DataTable LocalizarDados(String Pesquisar)
        {
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.Parameters.AddWithValue("@Nome", Pesquisar);

                cmd.CommandText = "spClientesSelectPesquisar";

                tbRetorno.Clear();
                tbRetorno.Load(cmd.ExecuteReader());
            }
            catch { }

            finally
            {
                db.FechaConexao(cnx);
            }
            return tbRetorno;


        }
        public DataTable CarregaSetor()
        {
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.CommandText = "spSetorSelect";
                tbRetornoSetor.Clear();
                tbRetornoSetor.Load(cmd.ExecuteReader());
            }
            catch
            { }
            finally
            {
                db.FechaConexao(cnx);
            }
            return tbRetornoSetor;

        }
        public Boolean Inserir(String Nome, String Endereco, String Compl, String Bairro, String Cidade, String Estado,
            String Cep, String CpfCnpj, String IeRg, String Fone, String Fax, String Celular, String Email, String Credito,
            String Motivo, String DtMotivo, String Cobranca, String Limite, String DataNascimento, String Autorizado,
            String EndEntrega, Int32 Setor, String Empresa, String FoneEmpresa, String Salario, String Ref1, String FoneRef1, String Ref2,
            String FoneRef2, String Ref3, String FoneRef3, String EstCivil, String Conjuge, String Observacoes)
        {
            Boolean erro = false;
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.Parameters.AddWithValue("@Nome", Nome);                             //@Nome varchar(150)
                cmd.Parameters.AddWithValue("@Endereco", Endereco);                     //@Endereco varchar(200),
                cmd.Parameters.AddWithValue("@Compl", Compl);                           //@Compl varchar(50),
                cmd.Parameters.AddWithValue("@Bairro", Bairro);                         //@Bairro varchar(100),
                cmd.Parameters.AddWithValue("@Cidade", Cidade);                         //@Cidade varchar(150),
                cmd.Parameters.AddWithValue("@Estado", Estado);                         //@Estado varchar(2),
                cmd.Parameters.AddWithValue("@Cep", Cep);                               //@Cep varchar(11),
                cmd.Parameters.AddWithValue("@CpfCnpj", CpfCnpj);                       //@CpfCnpj varchar(20),
                cmd.Parameters.AddWithValue("@IeRg", IeRg);                             //@IeRg varchar(20),
                cmd.Parameters.AddWithValue("@Fone", Fone);                             //@Fone varchar(15),
                cmd.Parameters.AddWithValue("@Fax", Fax);                               //@Fax varchar(15),
                cmd.Parameters.AddWithValue("@Celular", Celular);                       //@Celular varchar(15),
                cmd.Parameters.AddWithValue("@Email", Email);                           //@Email varchar(120),
                cmd.Parameters.AddWithValue("@Credito", Credito);                       //@Credito varchar(10),
                cmd.Parameters.AddWithValue("@Motivo", Motivo);                         //@Motivo varchar(10),

                if(DtMotivo == "")
                    cmd.Parameters.AddWithValue("@DtMotivo", DBNull.Value);             //@DtMotivo datetime,
                else
                    cmd.Parameters.AddWithValue("@DtMotivo", Convert.ToDateTime(DtMotivo));//@DtMotivo datetime,

                cmd.Parameters.AddWithValue("@Cobranca ", Cobranca);                    //@Cobranca varchar(20),

                if(Limite == "")
                    cmd.Parameters.AddWithValue("@Limite", DBNull.Value);
                else
                    cmd.Parameters.AddWithValue("@Limite", Convert.ToDecimal(Limite));  //@Limite decimal(10, 2),

                if(DataNascimento == "  /  /")
                    cmd.Parameters.AddWithValue("@DataNascimento", DBNull.Value);       //@DataNascimento date,
                else
                    cmd.Parameters.AddWithValue("@DataNascimento", Convert.ToDateTime(DataNascimento));//@DataNascimento date,

                cmd.Parameters.AddWithValue("@Autorizado", Autorizado);                 //@Autorizado varchar(50),
                cmd.Parameters.AddWithValue("@EndEntrega", EndEntrega);                 //@EndEntrega varchar(100),
                
                if(Setor == 0)
                    cmd.Parameters.AddWithValue("@Setor", 1);
                else
                    cmd.Parameters.AddWithValue("@Setor", Setor);                           //@Setor int,
                
                cmd.Parameters.AddWithValue("@Empresa", Empresa);                       //@Empresa varchar(150),
                cmd.Parameters.AddWithValue("@FoneEmpresa", FoneEmpresa);               //@FoneEmpresa varchar(15),

                if(Salario == "")
                    cmd.Parameters.AddWithValue("@Salario", DBNull.Value);
                else
                    cmd.Parameters.AddWithValue("@Salario ", Convert.ToDecimal(Salario));//@Salario decimal(10, 2),

                cmd.Parameters.AddWithValue("@Ref1", Ref1);                             //@Ref1 varchar(100),
                cmd.Parameters.AddWithValue("@FoneRef1", FoneRef1);                     //@FoneRef1 varchar(15),
                cmd.Parameters.AddWithValue("@Ref2", Ref2);                             //@Ref2 varchar(100),
                cmd.Parameters.AddWithValue("@FoneRef2", FoneRef2);                     //@FoneRef2 varchar(15),
                cmd.Parameters.AddWithValue("@Ref3", Ref3);                             //@Ref3 varchar(100),
                cmd.Parameters.AddWithValue("@FoneRef3", FoneRef3);                     //@FoneRef3 varchar(15),
                cmd.Parameters.AddWithValue("@EstCivil", EstCivil);                     //@EstCivil char(10),                 
                cmd.Parameters.AddWithValue("@Conjuge", Conjuge);                       //@Conjuge varchar(100),
                cmd.Parameters.AddWithValue("@Observacoes", Observacoes);               //@Observacoes text 

                cmd.CommandText = "spClientesInsert";
                cmd.ExecuteNonQuery();
            }
            catch
            {
                erro = true;
            }
            finally
            {
                db.FechaConexao(cnx);
            }
            return erro;


        }

        public Boolean Atualizar(Int32 CodCliente, String Nome, String Endereco, String Compl, String Bairro, String Cidade, String Estado,
            String Cep, String CpfCnpj, String IeRg, String Fone, String Fax, String Celular, String Email, String Credito,
            String Motivo, String DtMotivo, String Cobranca, String Limite, String DataNascimento, String Autorizado,
            String EndEntrega, Int32 Setor, String Empresa, String FoneEmpresa, String Salario, String Ref1, String FoneRef1, String Ref2,
            String FoneRef2, String Ref3, String FoneRef3, String EstCivil, String Conjuge, String Observacoes)
        {
            Boolean erro = false;
            try
            {
                cnx = db.AbreConexao("strConexao");
                cmd = db.getCommand(cnx);

                cmd.Parameters.AddWithValue("@CodCliente", CodCliente);
                cmd.Parameters.AddWithValue("@Nome", Nome);                             //@Nome varchar(150)
                cmd.Parameters.AddWithValue("@Endereco", Endereco);                     //@Endereco varchar(200),
                cmd.Parameters.AddWithValue("@Compl", Compl);                           //@Compl varchar(50),
                cmd.Parameters.AddWithValue("@Bairro", Bairro);                         //@Bairro varchar(100),
                cmd.Parameters.AddWithValue("@Cidade", Cidade);                         //@Cidade varchar(150),
                cmd.Parameters.AddWithValue("@Estado", Estado);                         //@Estado varchar(2),
                cmd.Parameters.AddWithValue("@Cep", Cep);                               //@Cep varchar(11),
                cmd.Parameters.AddWithValue("@CpfCnpj", CpfCnpj);                       //@CpfCnpj varchar(20),
                cmd.Parameters.AddWithValue("@IeRg", IeRg);                             //@IeRg varchar(20),
                cmd.Parameters.AddWithValue("@Fone", Fone);                             //@Fone varchar(15),
                cmd.Parameters.AddWithValue("@Fax", Fax);                               //@Fax varchar(15),
                cmd.Parameters.AddWithValue("@Celular", Celular);                       //@Celular varchar(15),
                cmd.Parameters.AddWithValue("@Email", Email);                           //@Email varchar(120),
                cmd.Parameters.AddWithValue("@Credito", Credito);                       //@Credito varchar(10),
                cmd.Parameters.AddWithValue("@Motivo", Motivo);                         //@Motivo varchar(10),

                if(DtMotivo == "")
                    cmd.Parameters.AddWithValue("@DtMotivo", DBNull.Value);             //@DtMotivo datetime,
                else
                    cmd.Parameters.AddWithValue("@DtMotivo", Convert.ToDateTime(DtMotivo));//@DtMotivo datetime,

                cmd.Parameters.AddWithValue("@Cobranca ", Cobranca);                    //@Cobranca varchar(20),

                if(Limite == "")
                    cmd.Parameters.AddWithValue("@Limite", DBNull.Value);
                else
                    cmd.Parameters.AddWithValue("@Limite", Convert.ToDecimal(Limite));  //@Limite decimal(10, 2),

                if(DataNascimento == "  /  /")
                    cmd.Parameters.AddWithValue("@DataNascimento", DBNull.Value);       //@DataNascimento date,
                else
                    cmd.Parameters.AddWithValue("@DataNascimento", Convert.ToDateTime(DataNascimento));//@DataNascimento date,

                cmd.Parameters.AddWithValue("@Autorizado", Autorizado);                 //@Autorizado varchar(50),
                cmd.Parameters.AddWithValue("@EndEntrega", EndEntrega);                 //@EndEntrega varchar(100),

                if(Setor == 0)
                    cmd.Parameters.AddWithValue("@Setor", 1);
                else
                    cmd.Parameters.AddWithValue("@Setor", Setor);                           //@Setor int,

                cmd.Parameters.AddWithValue("@Empresa", Empresa);                       //@Empresa varchar(150),
                cmd.Parameters.AddWithValue("@FoneEmpresa", FoneEmpresa);               //@FoneEmpresa varchar(15),

                if(Salario == "")
                    cmd.Parameters.AddWithValue("@Salario", DBNull.Value);
                else
                    cmd.Parameters.AddWithValue("@Salario ", Convert.ToDecimal(Salario));//@Salario decimal(10, 2),

                cmd.Parameters.AddWithValue("@Ref1", Ref1);                             //@Ref1 varchar(100),
                cmd.Parameters.AddWithValue("@FoneRef1", FoneRef1);                     //@FoneRef1 varchar(15),
                cmd.Parameters.AddWithValue("@Ref2", Ref2);                             //@Ref2 varchar(100),
                cmd.Parameters.AddWithValue("@FoneRef2", FoneRef2);                     //@FoneRef2 varchar(15),
                cmd.Parameters.AddWithValue("@Ref3", Ref3);                             //@Ref3 varchar(100),
                cmd.Parameters.AddWithValue("@FoneRef3", FoneRef3);                     //@FoneRef3 varchar(15),
                cmd.Parameters.AddWithValue("@EstCivil", EstCivil);                     //@EstCivil char(10),                 
                cmd.Parameters.AddWithValue("@Conjuge", Conjuge);                       //@Conjuge varchar(100),
                cmd.Parameters.AddWithValue("@Observacoes", Observacoes);               //@Observacoes text 

                cmd.CommandText = "spClientesUpdate";

                cmd.ExecuteNonQuery();
            }
            catch
            {

                erro = true;
            }
            finally
            {
                db.FechaConexao(cnx);
            }
            return erro;
        }
        public Boolean Excluir(Int32 CodCliente)
        {
            Boolean sucesso = true;

            if(CodCliente < 0)
            {
                sucesso = false;
            }

            else
            {
                try
                {
                    cnx = db.AbreConexao("strConexao");
                    cmd = db.getCommand(cnx);

                    cmd.Parameters.AddWithValue("@CodCliente", CodCliente);
                    cmd.CommandText = "spClienteDelete";

                    cmd.ExecuteNonQuery();
                }
                catch
                {
                    sucesso = false;
                }
                finally
                {
                    db.FechaConexao(cnx);
                }
            }
            return sucesso;
        }
    }

    //private void Parametros(String Nome, String Endereco, String Compl, String Bairro, String Cidade, String Estado, String Cep, String CpfCnpj, String IeRg, String Fone, String Fax, String Celular, String Email, String Credito, String Motivo, String Cobranca, String Autorizado, String EndEntrega, String Empresa, String FoneEmpresa, String Ref1, String FoneRef1, String Ref2, String FoneRef2, String Ref3, String FoneRef3, String EstCivil, String Conjuge, String Observacoes, DateTime DtMotivo, DateTime DataNascimento, Decimal Limite, Decimal Salario, Int32 Setor)
    //{
    //    cmd.Parameters.AddWithValue("@Nome", Nome);
    //    cmd.Parameters.AddWithValue("@Endereco", Endereco);
    //    cmd.Parameters.AddWithValue("@Compl", Compl);
    //    cmd.Parameters.AddWithValue("@Bairro", Bairro);
    //    cmd.Parameters.AddWithValue("@Cidade", Cidade);
    //    cmd.Parameters.AddWithValue("@Estado", Estado);
    //    cmd.Parameters.AddWithValue("@Cep", Cep);
    //    cmd.Parameters.AddWithValue("@CpfCnpj", CpfCnpj);
    //    cmd.Parameters.AddWithValue("@IeRg", IeRg);
    //    cmd.Parameters.AddWithValue("@Fone", Fone);
    //    cmd.Parameters.AddWithValue("@Fax", Fax);
    //    cmd.Parameters.AddWithValue("@Celular", Celular);
    //    cmd.Parameters.AddWithValue("@Email", Email);
    //    cmd.Parameters.AddWithValue("@Credito", Credito);
    //    cmd.Parameters.AddWithValue("@Motivo", Motivo);
    //    cmd.Parameters.AddWithValue("@DtMotivo", DtMotivo);
    //    cmd.Parameters.AddWithValue("@Cobranca ", Cobranca);
    //    cmd.Parameters.AddWithValue("Limite", Limite);
    //    cmd.Parameters.AddWithValue("@DataNascimento", DataNascimento);
    //    cmd.Parameters.AddWithValue("@Autorizado", Autorizado);
    //    cmd.Parameters.AddWithValue("@EndEntrega", EndEntrega);
    //    cmd.Parameters.AddWithValue("@Setor", Setor);
    //    cmd.Parameters.AddWithValue("@Empresa", Empresa);
    //    cmd.Parameters.AddWithValue("@FoneEmpresa", FoneEmpresa);
    //    cmd.Parameters.AddWithValue("@Salario ", Salario);
    //    cmd.Parameters.AddWithValue("@Ref1", Ref1);
    //    cmd.Parameters.AddWithValue("@FoneRef1", FoneRef1);
    //    cmd.Parameters.AddWithValue("@Ref2", Ref2);
    //    cmd.Parameters.AddWithValue("@FoneRef2", FoneRef2);
    //    cmd.Parameters.AddWithValue("@Ref3", Ref3);
    //    cmd.Parameters.AddWithValue("@EstCivil", EstCivil);
    //    cmd.Parameters.AddWithValue("@Conjuge", Conjuge);
    //    cmd.Parameters.AddWithValue("@Observacoes", Observacoes);

    //    return;
    //}
}

